// Generated from G:/code/cursor/dsl-demo/src/main/antlr4/com/example/mapdsl/MapDSL.g4 by ANTLR 4.13.2
package com.example.mapdsl.dsl;
import org.antlr.v4.runtime.tree.ParseTreeVisitor;

/**
 * This interface defines a complete generic visitor for a parse tree produced
 * by {@link MapDSLParser}.
 *
 * @param <T> The return type of the visit operation. Use {@link Void} for
 * operations with no return type.
 */
public interface MapDSLVisitor<T> extends ParseTreeVisitor<T> {
	/**
	 * Visit a parse tree produced by {@link MapDSLParser#program}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitProgram(MapDSLParser.ProgramContext ctx);
	/**
	 * Visit a parse tree produced by {@link MapDSLParser#statement}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitStatement(MapDSLParser.StatementContext ctx);
	/**
	 * Visit a parse tree produced by {@link MapDSLParser#variableDeclaration}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitVariableDeclaration(MapDSLParser.VariableDeclarationContext ctx);
	/**
	 * Visit a parse tree produced by {@link MapDSLParser#ifStatement}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitIfStatement(MapDSLParser.IfStatementContext ctx);
	/**
	 * Visit a parse tree produced by {@link MapDSLParser#block}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitBlock(MapDSLParser.BlockContext ctx);
	/**
	 * Visit a parse tree produced by {@link MapDSLParser#expressionStatement}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitExpressionStatement(MapDSLParser.ExpressionStatementContext ctx);
	/**
	 * Visit a parse tree produced by the {@code regexFindAllExpr}
	 * labeled alternative in {@link MapDSLParser#expression}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitRegexFindAllExpr(MapDSLParser.RegexFindAllExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code regexMatchExpr}
	 * labeled alternative in {@link MapDSLParser#expression}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitRegexMatchExpr(MapDSLParser.RegexMatchExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code orExpr}
	 * labeled alternative in {@link MapDSLParser#expression}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitOrExpr(MapDSLParser.OrExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code additiveExpr}
	 * labeled alternative in {@link MapDSLParser#expression}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitAdditiveExpr(MapDSLParser.AdditiveExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code relationalExpr}
	 * labeled alternative in {@link MapDSLParser#expression}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitRelationalExpr(MapDSLParser.RelationalExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code methodCallExpr}
	 * labeled alternative in {@link MapDSLParser#expression}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitMethodCallExpr(MapDSLParser.MethodCallExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code notExpr}
	 * labeled alternative in {@link MapDSLParser#expression}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitNotExpr(MapDSLParser.NotExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code arrayAccessExpr}
	 * labeled alternative in {@link MapDSLParser#expression}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitArrayAccessExpr(MapDSLParser.ArrayAccessExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code primaryExpr}
	 * labeled alternative in {@link MapDSLParser#expression}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitPrimaryExpr(MapDSLParser.PrimaryExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code arraySizeExpr}
	 * labeled alternative in {@link MapDSLParser#expression}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitArraySizeExpr(MapDSLParser.ArraySizeExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code regexReplaceExpr}
	 * labeled alternative in {@link MapDSLParser#expression}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitRegexReplaceExpr(MapDSLParser.RegexReplaceExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code multiplicativeExpr}
	 * labeled alternative in {@link MapDSLParser#expression}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitMultiplicativeExpr(MapDSLParser.MultiplicativeExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code equalityExpr}
	 * labeled alternative in {@link MapDSLParser#expression}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitEqualityExpr(MapDSLParser.EqualityExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code andExpr}
	 * labeled alternative in {@link MapDSLParser#expression}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitAndExpr(MapDSLParser.AndExprContext ctx);
	/**
	 * Visit a parse tree produced by {@link MapDSLParser#primary}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitPrimary(MapDSLParser.PrimaryContext ctx);
}